草庐IT

Android isScreenOn Nullpointer异常

全部标签

c# - 我如何对这个(正确地)抛出异常的异步方法进行单元测试?

我在接口(interface)中有以下方法..Task>SearchAsync(TUsearchOptions);效果很好。现在我正在尝试进行单元测试以测试何时出现问题-代码会抛出异常。在这种情况下,我已将我的方法设置为抛出HttpRequestException。我的单元测试没有说我抛出了那个异常..varresult=Should.Throw(async()=>awaitservice.SearchAsync(searchOptions));单元测试的错误信息是Shouldly.ChuckedAWobblyvarresult=ShouldthrowSystem.Net.Http.H

c# - 在 C# 中使用 GDAL 时出现异常

我开始在我的应用程序中使用gdal_csharpdll并读取一个geotiff文件。但它说:Thetypeinitializerfor'OSGeo.GDAL.GdalPINVOKE'threwanexception.这是我的代码stringfileName=@"/pathtogeotifffile";OSGeo.GDAL.DatasetDS=OSGeo.GDAL.Gdal.Open(fileName,OSGeo.GDAL.Access.GA_ReadOnly);谁能帮忙?编辑:我有这些dll这是完整的错误信息:它说无法加载gdal_wrap。但是当我要将该dll添加到我的应用程序时,会

c# - .NET 4.5 中未观察到的任务异常仍然会导致应用程序崩溃

在StevenToub'sarticle:TomakeiteasierfordeveloperstowriteasynchronouscodebasedonTasks,.NET4.5changesthedefaultexceptionbehaviorforunobservedexceptions.WhileunobservedexceptionswillstillcausetheUnobservedTaskExceptioneventtoberaised(notdoingsowouldbeabreakingchange),theprocesswillnotcrashbydefault.

c# - 我可以在 C# 中创建一个全局异常处理程序,让代码在之后继续运行吗?

在.NET中,默认的异常处理程序会让用户继续运行程序。但是,我想要一个全局异常处理程序,将堆栈跟踪保存到“errorlog.txt”文件中,以便用户可以将其发送给我,而不必记住单击“详细信息”并将其复制出对话框(并删除所有关于加载程序集等无用的废话)。但是当我这样做时,代码不知道如何继续,所以我所能做的就是退出应用程序。有什么办法可以两全其美吗?(是的,我知道我要求的本质上是带有日志记录的“OnErrorResumeNext”,但我真的认为它会很有用!) 最佳答案 AppDomain.CurrentDomain.UnhandledE

c# - 在没有 Wait() 的情况下使用 TPL 处理异常

我有一个带有“开始”和“停止”按钮的应用程序,以及一个在按下“开始”后在后台运行的线程。我为此使用MVC和TPL。我从不调用Wait()方法,如何处理TPL中的异常?在任何异常情况下,我都需要显示错误消息框,并且该框应该在它被立即抛出后显示。我一直在后台运行单线程,所以你不能在没有事先停止线程的情况下按开始。我正在寻找一些好的模式或最佳实践。我有一个想法将try..catch放在线程中,并在每次捕获时调用一个事件,但我不确定这种方法是否是好的架构决策 最佳答案 如果您正在使用Tasks,您可以添加一个仅在抛出异常时才运行的延续。您还

c# - 在展开嵌套的 "Dispose"语句时处理 "using"抛出的异常

显然,在使用嵌套的using语句时,一些异常可能会丢失。考虑这个简单的控制台应用程序:usingSystem;namespaceConsoleApplication{publicclassThrowing:IDisposable{intn;publicThrowing(intn){this.n=n;}publicvoidDispose(){vare=newApplicationException(String.Format("Throwing({0})",this.n));Console.WriteLine("Throw:{0}",e.Message);throwe;}}classPr

c# - 创建自定义异常还是使用内置异常?

目前我正在编写一个客户端类,该类利用DNS、套接字和SSL以及其他喜欢抛出异常的类。其他人将实现此类,所以我想知道抛出异常的最佳做法是什么。我应该创建自己的自定义异常以便他们知道是我的类抛出异常,还是应该允许我调用的类和方法(DNS、套接字等)抛出它们自己的异常?目前,代码有数百行,并且随着许多不同的方法调用而不断增加。在这种情况下抛出异常的最佳做法是什么? 最佳答案 如果BCL包含的类已经传达了您想要的含义(例如,ArgumentNullException),请使用这些类。为特定于您的API的事物保留使用您自己的异常类。如果您觉得

c# - 异常处理——显示错误发生的行号?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Showlinenumberinexceptionhandling谁能告诉我如何获取发生错误的代码的行号并将其显示到控制台?文件名或方法名等其他信息会非常方便。

c# - 在 C# 中,我如何知道要捕获哪些异常?

我已经养成了使用通用catch语句的习惯,并且我以通用方式处理这些异常。这是不好的做法吗?如果是这样,我如何知道可以抛出哪些特定异常以及捕获哪些异常? 最佳答案 是的,除了在一些非常特殊的情况下这是不好的做法。我能想到的一个常见情况是,捕获所有异常并不是一个糟糕的主意,当您在应用程序即将自行关闭之前记录一条消息或堆栈跟踪(或者,也许,您正在记录并重新抛出)。只捕获您知道可以处理的异常。不多也不少。如果您不知道可以从方法中抛出异常,那么无论如何您都不会正确处理它,所以不要捕获它。方法和库负责记录您应该能够处理的异常。此外,不要捕获指示

c# - 异常 : Deadlock

当我尝试在C#中从SQL数据库中获取数据时,生成了这两个异常:System.Data.SqlClient.SqlException:Transaction(ProcessID97)wasdeadlockedonlockresourceswithanotherprocessandhasbeenchosenasthedeadlockvictim.或System.Data.SqlClient.SqlException:Transaction(ProcessID62)wasdeadlockedonlockresourceswithanotherprocessandhasbeenchosenas